home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / kemailsettings.h < prev    next >
Encoding:
C/C++ Source or Header  |  2005-09-10  |  3.8 KB  |  148 lines

  1. /*-
  2.  * Copyright (c) 2000 Alex Zepeda <zipzippy@sonic.net>
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice, this list of conditions and the following disclaimer.
  10.  * 2. Redistributions in binary form must reproduce the above copyright
  11.  *    notice, this list of conditions and the following disclaimer in the
  12.  *    documentation and/or other materials provided with the distribution.
  13.  *
  14.  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  15.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  16.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  17.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  18.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  19.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  20.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  21.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  22.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  23.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  24.  * SUCH DAMAGE.
  25.  *
  26.  */
  27.  
  28. #ifndef _KEMAILSETTINGS_H
  29. #define _KEMAILSETTINGS_H
  30.  
  31. #include <qstring.h>
  32. #include <qstringlist.h>
  33.  
  34. #include <kdelibs_export.h>
  35.  
  36. class KEMailSettingsPrivate;
  37.  
  38.  
  39. /**
  40.   * This is just a small class to facilitate accessing e-mail settings in 
  41.   * a sane way, and allowing any program to manage multiple e-mail 
  42.   * profiles effortlessly
  43.   *
  44.   * @author Alex Zepeda zipzippy@sonic.net
  45.   **/
  46. class KIO_EXPORT KEMailSettings {
  47. public:
  48.     /**
  49.       * The list of settings that I thought of when I wrote this 
  50.       * class.  Any extra settings thought of later can be accessed 
  51.       * easily with getExtendedSetting and setExtendedSetting.
  52.       * @see getSetting()
  53.       * @see setSetting()
  54.       * @see getExtendedSetting()
  55.       * @see setExtendedSetting()
  56.       **/
  57.     enum Setting {
  58.         ClientProgram,
  59.         ClientTerminal,
  60.         RealName,
  61.         EmailAddress,
  62.         ReplyToAddress,
  63.         Organization,
  64.         OutServer,
  65.         OutServerLogin,
  66.         OutServerPass,
  67.         OutServerType,
  68.         OutServerCommand,
  69.         OutServerTLS,
  70.         InServer,
  71.         InServerLogin,
  72.         InServerPass,
  73.         InServerType,
  74.         InServerMBXType,
  75.         InServerTLS
  76.     };
  77.  
  78.     /**
  79.       * The various extensions allowed.
  80.       **/
  81.     enum Extension {
  82.         POP3,
  83.         SMTP,
  84.         OTHER
  85.     };
  86.  
  87.     /**
  88.       * Default constructor, just sets things up.
  89.       **/
  90.     KEMailSettings();
  91.  
  92.     /**
  93.       * Default destructor, nothing to see here.
  94.       **/
  95.     ~KEMailSettings();
  96.  
  97.     /**
  98.       * List of profiles available.
  99.       * @return the list of profiles
  100.       **/
  101.     QStringList profiles() const;
  102.  
  103.     /**
  104.      * Returns the name of the current profile.
  105.       * @returns what profile we're currently using
  106.       **/
  107.     QString currentProfileName() const;
  108.  
  109.     /**
  110.       * Change the current profile.
  111.       * @param s the name of the new profile
  112.       **/
  113.     void setProfile (const QString &s);
  114.  
  115.     /**
  116.      * Returns the name of the default profile.
  117.      * @returns the name of the one that's currently default QString::null if none
  118.      **/
  119.     QString defaultProfileName() const;
  120.  
  121.     /**
  122.       * Sets a new default.
  123.       * @param def the new default
  124.       **/
  125.     void setDefault(const QString &def);
  126.  
  127.     /**
  128.       * Get one of the predefined "basic" settings.
  129.       * @param s the setting to get
  130.       * @return the value of the setting, or QString::null if not 
  131.       *         set
  132.       **/
  133.     QString getSetting(KEMailSettings::Setting s);
  134.  
  135.     /**
  136.       * Set one of the predefined "basic" settings.
  137.       * @param s the setting to set
  138.       * @param v the new value of the setting, or QString::null to 
  139.       *         unset
  140.       **/
  141.     void setSetting(KEMailSettings::Setting s, const QString &v);
  142.  
  143. private:
  144.     KEMailSettingsPrivate *p;
  145. };
  146.  
  147. #endif
  148.